Referring to FIG. 1, a block diagram of a semiconductor 10 is shown. The semiconductor 10 has a number of metal layers 12 (i.e., M1–M4) that are used for routing wires of the semiconductor. Each of the metal layers 12 is separated by an insulator layer 14. In a conventional process for “metalization” or routing in semiconductors, each metal layer 12 contains wires that run mostly in one direction (i.e., horizontal) or another (i.e., vertical). Conventional routing keeps wires in a single layer as long as possible. By using vias 16, wires in conventional routing can change layers (i) to avoid another wire, (ii) to change direction or (iii) to attach to a structure (e.g., a transistor) in an active layer 18.
In conventional routing, the top layer mostly consists of wires of that layer going in one direction. All of the wires in all of the layers beneath the top layer are buried. Thus, the wires beneath the top layer are completely inaccessible for programming from the top.
A solution that allows programming each wire in a semiconductor at the top layer would be desirable.